//get the reward information - interface 
// 获奖信息接口的编写-封装所有接口信息-统一对外提供
import $ from 'jquery';

class Interface {
    /**
     * [getOmit get the omit data]
     * @param {string} issue [current the reward no.] 
     * @return {[type]} [description]
     */
    getOmit(issue) {
        // 由于使用了闭包 用self=this保留对对象的引用
        let self = this;
        return new Promise((resolve, reject)=>{
            $.ajax({
                url: '/get/omit',
                data: {
                    issue: issue
                },
                dataType: 'json',
                success: function(res) {
                    self.setOmit(res.data);
                    resolve.call(self, res);
                },
                error: function(err) {
                    reject.call(err);
                }
            })
        })
    }
    /**
     * [getOpenCode get the reward Code every time]
     * 获取每次开奖的获奖号码信息
     * @param {*} issue 
     */
    getOpenCode(issue) {
        let self = this;
        return new Promise((resolve, reject)=>{
            $.ajax({
                url:'/get/opencode',
                data: {
                    issue: issue
                },
                dataType:'json',
                success: function(res) {
                    self.setOpenCode(res.data);
                    //将数据赋值给调用对象，防止再次回调函数进行返回
                    resolve.call(self, res);
                },
                error: function(err) {
                    reject.call(err);
                }
            })
        });
    }

    /**
     * [getState get the current term no.]
     * 获取当前服务器信息,当前开奖的每期的期号
     * @param {*} issue 
     */
    getState(issue) {
        let self = this;
        return new Promise((resolve, reject)=>{
            $.ajax({
                url: '/get/state',
                data: {
                    issue: issue
                },
                dataType: 'json',
                success: function(res){
                    resolve.call(self, res);
                },
                error: function(err) {
                    reject.call(err);
                }
            })
        });
    }

}

export default Interface;

